/*
  n 以内的素数
  题目描述
    编写程序输出 2 到 n 区间的所有素数。
  输入描述
    一个正整数 n
  输出描述
    一行，包括若干个数，表示所有的素数，每两个素数之间用空格隔开
  样例1
    输入
      10
    输出
      2 3 5 7
  提示
    对于 100% 的数据，2 <= n <= 10000
*/

#include <iostream>

using namespace std;

// 判断输入参数是否是素数(现阶段效率最高的判断是否是素数的方法)
bool a1(int num) {
  // 注意: 这里对循环条件做了优化!
  //             ___
  // 遍历从 2 ~ √num 之间的整数, 判断这些数是否能整除 num,
  // 如果存在能整除num的数, 则 num 不是素数; 否则 num 是素数!
  for (int i = 2; i * i <= num; i++) {
    if (num % i == 0) {
      return false;
    }
  }

  return true;
}

int main() {
    int n;
    cin >> n;
    for (int i = 2; i <= n; i++) {
        if (a1(i)) {
            cout << i << " ";
        }
    }
    return 0;
}